5565
1843
Bir şubeyi hem yerel hem de uzaktan silmek istiyorum.
Uzak Şubeyi Silme Denemeleri Başarısız
$ git şube -d uzaktan kumandalar / kaynak / hata düzeltme
hata: şube 'uzaktan / kaynak / hata düzeltme' bulunamadı.
$ git şube -d kaynak / hata düzeltme
hata: 'kaynak / hata düzeltme' dalı bulunamadı.
$ git şube -rd kaynağı / hata düzeltme
Uzak dal kaynağı / hata düzeltme silindi (2a14ef7 idi).
$ git itme
Her şey güncel
$ git çekme
Github.com'dan :gituser/gitproject
* [yeni şube] hata düzeltme -> kaynak / hata düzeltme
Zaten güncel.
Uzak / kaynak / hata düzeltme dalını hem yerel hem de uzaktan başarıyla silmek için ne yapmalıyım? 
1
2
Sonraki
Yönetici Özeti
$ git push -d  <şube_adı>
$ git şube -d <şube_adı>
Çoğu durumda uzak adın orijin olduğunu unutmayın.
Böyle bir durumda komutu bu şekilde kullanmanız gerekecektir.
$ git push -d kaynak <şube_adı>
Yerel Şubeyi Sil
Yerel şubeyi silmek için aşağıdakilerden birini kullanın:
$ git şube -d şube_adı
$ git şube -D şube_adı
Not: -d seçeneği, --delete için bir takma addır ve yalnızca yukarı akış dalında zaten tam olarak birleştirildiyse dalı siler. Ayrıca --delete --force için bir takma ad olan ve dalı "birleştirilmiş durumuna bakılmaksızın" silen -D'yi de kullanabilirsiniz. [Kaynak: adam git-şube]
Ayrıca git branch -d branch_name şu anda eğer başarısız olursanız
kaldırmak istediğiniz dalda. Mesaj şununla başlar:
hata: 'şube_adı' dalı silinemiyor. Eğer öyleyse, önce değiştirin
başka bir şubeye, örneğin: git checkout master.
Uzak Şubeyi Silme [8 Eylül 2017'de güncellendi]
Git v1.7.0'dan itibaren, bir uzak dalı silebilirsiniz.
$ git push  --delete 
hangisini hatırlaması daha kolay olabilir
$ git push : <şube_adı>
"uzak bir dalı veya etiketi silmek için" Git v1.5.0'da eklenmiştir.
Git v2.8.0'dan başlayarak, git push'u --delete için bir takma ad olarak -d seçeneğiyle birlikte de kullanabilirsiniz.
Bu nedenle, kurduğunuz Git sürümü, daha kolay mı yoksa daha zor sözdizimini mi kullanmanız gerektiğini belirleyecektir.
Uzak Şubeyi Silme [5 Ocak 2010 Tarihinden Gelen Asıl Cevap]
Scott Chacon tarafından yazılan Pro Git'in 3. Bölümünden:
Uzak Şubeleri Silme
Uzak bir şubeyle işinizin bittiğini varsayalım - diyelim ki, siz ve ortak çalışanlarınızın bir özelliği tamamladınız ve onu uzaktan kumandanızın ana dalına (veya kararlı kod satırınız hangi dalda olursa olsun) birleştirdiniz. Oldukça geniş sözdizimi git push [remotename]: [branch] kullanarak uzak bir dalı silebilirsiniz. Sunucu düzeltme dalınızı sunucudan silmek isterseniz, aşağıdakileri çalıştırırsınız:
$ git itme kaynağı: serverfix
Git@github.com adresine: schacon / simplegit.git
- [silindi] serverfix
Boom. Sunucunuzda artık dal yok. Bu komutu takip etmek isteyebilirsiniz çünkü bu komuta ihtiyacınız olacak ve muhtemelen sözdizimini unutacaksınız. Bu komutu hatırlamanın bir yolu, biraz önce üzerinden geçtiğimiz git push [remotename] [localbranch]: [remotebranch] sözdizimini hatırlamaktır. [Localbranch] kısmını devre dışı bırakırsanız, "Benim tarafımdan hiçbir şey almayın ve [remotebranch] olmasını sağlayın" diyorsunuz.
Git push origin: bugfix yayınladım ve çok güzel çalıştı. Scott Chacon haklıydı — O sayfayı (veya Stack Overflow'da buna cevap vererek sanal olarak kulak tırmalamak istiyorum).
O zaman bunu diğer makinelerde yapmalısınız
# Tüm uzaktan kumandalardan değişiklikleri getir ve yerel olarak sil
# uzaktan silinen dallar / etiketler vb.
# --prune şu işi yapacak: -;
git fetch --all --prune
değişiklikleri yaymak için.
|
Matthew'un cevabı uzaktaki dalları kaldırmak için harikadır ve açıklamayı da takdir ediyorum, ancak iki komut arasında basit bir ayrım yapmak için:
Makinenizden yerel bir şubeyi kaldırmak için:
git branch -d {the_local_branch} (birleştirilmiş durumu kontrol etmeden şubeyi silmeye zorlamak yerine -D kullanın)
Uzak bir dalı sunucudan kaldırmak için:
git push kaynağı --delete {the_remote_branch}
Referans: Git: Bir dalı silin (yerel veya uzak)
|
Kısa cevaplar
Aşağıdaki komutların daha ayrıntılı açıklamalarını istiyorsanız, bir sonraki bölümdeki uzun yanıtlara bakın.
Uzak bir dalı silme
git push kaynağı --delete  # Git sürüm 1.7.0 veya daha yenisi
git push origin -d  # Daha kısa sürüm (Git 1.7.0 veya daha yeni)
git push kaynağı:  # 1.7.0'dan eski Git sürümleri
Yerel bir şubeyi silme
git şube --delete 
git branch -d  # Daha kısa versiyon
git branch -D  # Birleştirilmemiş dalları silmeye zorla
Yerel bir uzaktan izleme şubesini silme
git branch --delete --remotes  / 
git branch -dr  /  # Daha kısa
git fetch  --prune # Eski birden çok uzaktan izleme dalını sil
git fetch  -p # Daha kısa
Uzun cevap: Silinecek üç farklı dal var!
Hem yerel hem de uzaktan şubeleri silmeyle uğraşırken, ilgili üç farklı dal olduğunu unutmayın:
Yerel şube X.
Uzak kökenli şube X.
Uzak şube X'i izleyen yerel uzaktan izleme şube kaynağı / X.
Kullanılan orijinal poster:
git şube -rd kaynağı / hata düzeltme
Bu, yalnızca yerel uzaktan izleme şube kaynağını / hata düzeltmesini silmiş ve köken üzerindeki asıl uzak şube hata düzeltmesini silmemiştir.
Bu gerçek uzak dalı silmek için,
git push kaynağı --delete bugfix
Ek detaylar
Aşağıdaki bölümler, uzaktan ve uzaktan izleme şubelerinizi silerken göz önünde bulundurmanız gereken ek ayrıntıları açıklamaktadır.
Uzak şubeleri silmeye zorlamak, uzaktan izleme şubelerini de kaldırır
Uzak dalı X komut satırından silmeningit push kullanmak yerel uzaktan izleme dalı orijinini / X'i de kaldırır, bu nedenle eski uzaktan izleme dalını git fetch --prune veya git fetch -p ile budamak gerekmez. Ancak, yine de yaparsan zarar vermez.
Aşağıdakileri çalıştırarak uzaktan izleme dalı kaynağının / X'in de silindiğini doğrulayabilirsiniz:
# Yalnızca uzaktan izleme şubelerini görüntüleyin
git şube - uzaktan kumandalar
git şube -r
# Hem tam olarak yerel hem de uzaktan izleme şubelerini görüntüleyin
git şube - hepsi
git şube -a
Kullanılmayan yerel uzaktan izleme dalı orijini / X'i budama
Uzak şube X'inizi komut satırından (yukarıdaki gibi) silmediyseniz, yerel deponuz yine de (artık kullanılmayan) uzaktan izleme şube orijini / X'i içerecektir. Örneğin, uzak bir şubeyi doğrudan GitHub'ın web arayüzü üzerinden sildiyseniz bu durum meydana gelebilir.
Bu eski uzaktan izleme dallarını kaldırmanın tipik bir yolu (Git sürüm 1.6.6'dan beri), git getirme işlemini --prune veya daha kısa -p ile çalıştırmaktır. Bu işlemin, artık uzaktaki dallar için artık kullanılmayan tüm yerel uzaktan izleme dallarını kaldırdığını unutmayın:
git getirme kaynağı --prune
git başlangıç ​​-p # Daha kısa getir
İşte 1.6.6 sürüm notlarından ilgili alıntı (vurgu benim):
"git getir" - hepsi ve - çok seçenekli, getirmeyi çalıştırmak için öğrenildi
birçok depo ve uzaktan izlemeyi kaldırmak için --prune seçeneği
bayatlamış dallar. Bunlar, "git uzaktan güncelleme" ve "git
uzaktan budama "daha az gerekli (kaldırma planı yok" uzaktan kumanda
güncelleme "ne de" uzaktan budama "olsa da).
Eski uzaktan izleme dalları için yukarıdaki otomatik budamaya alternatif
Alternatif olarak, eskimiş yerel uzaktan izleme dallarınızı git fetch -p aracılığıyla budamak yerine, fazladan ağ işlemi yapmaktan, dalları --remote veya -r bayraklarıyla manuel olarak kaldırabilirsiniz:
git şube - silme - menşei / X
git branch -dr kaynak / X # Daha kısa
Ayrıca bakınız
git-branch (1) Kılavuz Sayfası.
git-fetch (1) Kılavuz Sayfası.
Pro Git § 3.5 Git Dallanma - Uzak Dallar.
|
Bir dalı silmek için adımlar:
Uzak dalı silmek için:
git itme kaynağı --delete 
Yerel şubeyi silmek için üç yolunuz vardır:
1: git dalı -D 
2: git branch --delete --force <şube_adı> # -D ile aynı
3: git branch --delete <şube_adı> # Birleştirmeyi kaldırırken hata oluştu
Açıklayın: Tamam, burada neler olduğunu açıklayın!
Sadece uzak şubenizi silmek için git push origin --delete yapın, sonuna dalın adını ekleyin ve bu aynı anda onu siler ve uzak konuma itecektir ...
Ayrıca, git dalı -D, yalnızca yerel şubeyi siler! ...
-D, --delete --force anlamına gelir ve bu, birleştirilmemiş olsa bile şubeyi siler (silmeye zorla), ancak dal birleştirme durumuna ilişkin bir hata veren --delete anlamına gelen -d'yi de kullanabilirsiniz.
Adımları göstermek için aşağıdaki resmi de oluşturuyorum:
|
Uzak dalı silmek için aşağıdakileri de kullanabilirsiniz
git push - kaynak sunucusunu sil
Aynı şeyi yapan
git push kaynağı: serverfix
ama hatırlaması daha kolay olabilir.
|
İpucu: kullanarak dalları sildiğinizde
git branch -d  # Yerel şubeyi siler
veya
git push kaynağı:  # Uzak dalı siler
sadece referanslar silinir. Şube uzaktan kumandadan kaldırılmış olsa da, ona yapılan referanslar ekip üyelerinizin yerel depolarında hala mevcuttur. Bu, diğer takım üyeleri için silinen dalların git dalı -a yaptıklarında hala görünür olduğu anlamına gelir.
Bunu çözmek için ekip üyeleriniz silinen dalları budayarak
git remote prune 
Bu genellikle git uzak erik kökenlidir.
|
Bir şubeyi silmek isterseniz, öncelikle silinecek şube dışındaki şubeye ödeme yapın.
git checkout other_than_branch_to_be_deleted
Yerel şubeyi silme:
git şube -D branch_to_be_deleted
Uzak dalı silme:
git push kaynağı --delete branch_to_be_deleted
|
git şube -D 
git şube -D -r kökeni / <şube-adı>
git push kaynağı: 
|
Bu basit: Sadece aşağıdaki komutu çalıştırın:
Bir Git dalını hem yerel hem de uzaktan silmek için önce şu komutu kullanarak yerel dalı silin:
git şube -d örneği
(Örnek, şube adıdır.)
Ve bundan sonra, şu komutu kullanarak uzak dalı silin:
git push kaynağı: örnek
|
Çok basit:
Uzak dalı silmek için
git push -d kaynak 
Veya
git push kaynağı: 
Yerel şubeyi zorla silmek için
git şube -D 
|
Başka bir yaklaşım şudur:
git push -prune kaynağı
UYARI: Bu, yerel olarak mevcut olmayan tüm uzak dalları siler. Veya daha kapsamlı olarak,
git push -mirror
uzak deponun etkin bir şekilde deponun yerel kopyası gibi görünmesini sağlar (yerel kafalar, uzaktan kumandalar ve etiketler uzaktan yansıtılır).
|
Bash ayarlarımda aşağıdakileri kullanıyorum:
takma ad git-shoot = "git itmeköken - silme "
O zaman arayabilirsin:
git-shoot şube adı
|
Yerel olarak silin:
Yerel bir şubeyi silmek için şunları kullanabilirsiniz:
git şube -d <şube_adı>
Bir dalı zorla silmek için -d yerine -D kullanın.
git şube -D <şube_adı>
Uzaktan silin:
İki seçenek vardır:
git push kaynağı: şube adı
git push kaynağı - şube adını sil
Daha sezgisel olduğu için ikinci yolu kullanmanızı öneririm.
|
Ocak 2013'ten beri GitHub, "Şubeler" sayfanızdaki her şubenin yanına bir Dal sil düğmesi eklemiştir.
İlgili blog yayını: Dallar oluşturun ve silin
|
Bu iki adımı da tek bir komutla tamamlamak istiyorsanız, aşağıdakileri ~ / .gitconfig dosyanıza ekleyerek onun için bir takma ad oluşturabilirsiniz:
[takma ad]
rmbranch = "! f () {git branch -d $ {1} && git itme kaynağı --delete $ {1};}; f"
Alternatif olarak, bunu komut satırından genel yapılandırmanıza ekleyebilirsiniz.
git config --global alias.rmbranch \
'! f () {git branch -d $ {1} && git itme kaynağı --delete $ {1}; }; f '
NOT: -d (küçük d) kullanılıyorsa, dal yalnızca birleştirilmişse silinir. Silmeyi zorlamak için -D (büyük D) kullanmanız gerekir.
|
Şubenizi yerel ve uzaktan silmek için
Ana şubeye ödeme - git ödeme yöneticisi
Uzak şubenizi silin - git push kaynağı --delete 
Yerel şubenizi silin - git şube --delete <şube adı>
|
Bunu git remote prune origin kullanarak da yapabilirsiniz.
$ git uzak budama kaynağı
Budama kökeni
URL: git@example.com/yourrepo.git
* [budanmış] kökeni / bazı dallar
Uzaktan izleme dallarını bir git dalı -r listesinden ayıklar ve siler.
|
Diğer cevaplara ek olarak, git_remote_branch aracını sıklıkla kullanıyorum. Ekstra bir kurulumdur, ancak size uzak şubelerle etkileşim kurmanın uygun bir yolunu sunar. Bu durumda silmek için:
grb şube sil
Yayınla ve izle komutlarını da oldukça sık kullandığımı görüyorum.
|
Hem yerel hem de uzak noktayı silmek için tek satırlık bir komut:
D = şube adı; git dalı -D $ D; git itme kaynağı: $ D
Veya aşağıdaki takma adı ~ / .gitconfig dosyanıza ekleyin. Kullanım: git kill branch-name
[takma ad]
kill = "! f () {git şube -D \" $ 1 \ "; git itme kaynağı - silme \" $ 1 \ ";}; f"
|
Şubeleri Silme
Şube "iletişim formu" üzerindeki çalışmamızın tamamlandığını ve onu zaten "usta" ile entegre ettiğimizi varsayalım. Artık ihtiyacımız olmadığı için onu silebiliriz (yerel olarak):
$ git şube -d iletişim formu
Ve uzak dalı silmek için:
git push kaynağı - iletişim formunu sil
|
Uzak şubeyi sil
git push kaynağı: 
Yerel şubeyi sil
git şube -D 
Yerel şube adımlarını silin:
başka bir şubeye ödeme
yerel şubeyi sil
|
Basitçe şunu söyleyin:
git şube -d 
git push kaynağı: 
|
git push kaynağı --delete <şube adı>
hatırlaması daha kolay
git itme kaynağı: branchName
|
Şimdi bunu GitHub Desktop uygulamasıyla yapabilirsiniz.
Uygulamayı başlattıktan sonra
Şubeyi içeren projeye tıklayın
Silmek istediğiniz şubeye geçin
Dalın GitHub sunucularından silinmesi için "Dal" menüsünden "Yayından Kaldır ..." öğesini seçin.
Şubenin yerel makinenizden silinmesi için "Şube" menüsünden, "Şube_adı" nı Sil ... 'seçeneğini seçin (AKA şu anda üzerinde çalıştığınız makine)
|
Yerel olarak silmek için - (normal)
git şube -d dalım
Şubeniz bir yeniden ödeme / birleştirme sürecindeyse ve bu doğru şekilde yapılmadıysa, bir hata alacağınız anlamına gelir, Yeniden Başlat / Birleştir devam ediyor, bu durumda şubenizi silemeyeceksiniz.
Yani ya yeniden desteklemeyi / birleştirmeyi çözmeniz gerekiyor. Aksi takdirde, kullanarak silmeye zorlayabilirsiniz.
git şube -D dalım
Uzaktan silmek için:
git push - kökeni sil my_branch
Aynı şeyi kullanarak da yapabilirsiniz:
git push origin: my_branch # Hatırlaması kolay her ikisi de aynı şeyi yapacaktır.
Grafik gösterimi:
|
Uzaktan kumandadaki şubeyle aynı ada sahip bir etiketiniz varsa bu işe yaramaz:
$ git itme kaynağı: dal-veya-etiket-adı
hata: dst refspec dal-veya-etiket-adı birden fazla eşleşiyor.
hata: bazı referansları 'git@github.com: SomeName / some-repo.git' adresine gönderemedi
Bu durumda etiketi değil dalı silmek istediğinizi belirtmeniz gerekir:
git push kaynağı: refs / Heads / branch-or-tag-name
Benzer şekilde, kullanacağınız dal yerine etiketi silmek için:
git push kaynağı: refs / etiketler / dal-veya-etiket-adı
|
Diğer cevapların çoğu hatalara / uyarılara yol açacaktır. Bu yaklaşım nispeten aptalca bir kanıttır, ancak örneğin, bir_diger_branch ile tam olarak birleştirilmemişse, git branch -D branch_to_delete'e ihtiyacınız olabilir.
git checkout some_other_branch
git itme kaynağı: branch_to_delete
git şube -d branch_to_delete
Uzak dalı sildiyseniz, uzaktan budama gerekmez. Yalnızca izlediğiniz bir bilgi havuzunda bulunan en güncel uzaktan kumandaları almak için kullanılır. Git getirmenin uzaktan kumanda ekleyeceğini, kaldırmayacağını gözlemledim. Git remote prune origin'in gerçekte ne zaman bir şeyler yapacağına dair bir örnek:
Kullanıcı Ayukarıdaki adımları gerçekleştirir. B Kullanıcısı, en güncel uzak dalları görmek için aşağıdaki komutları çalıştırır:
git getir
git uzaktan erik kaynağı
git şube -r
|
Bu cevap için googling yapmaktan sıkıldım, bu yüzden crizCraig'in daha önce gönderdiği cevaba benzer bir yaklaşım izledim.
Bash profilime aşağıdakileri ekledim:
function gitdelete () {
git push kaynağı - 1 $ 'ı sil
git şubesi -D $ 1
}
Daha sonra bir dal ile işim her bittiğinde (örneğin, ana ile birleştirildiğinde) terminalimde aşağıdakileri çalıştırırım:
gitdelete my-branch-name
... bu da benim-şube-ismimi hem yerel hem de orijinden siler.
|
Yürütmeden önce
git şube --delete 
ilk olarak uzak dalın tam adının ne olduğunu belirlediğinizden emin olun:
git ls-remote
Bu size  değeri için tam olarak ne girmeniz gerektiğini söyleyecektir. (dal, büyük / küçük harfe duyarlıdır!)
|
Kullanım:
git push kaynağı: bugfix # Uzak dalı siler
git branch -d bugfix # Yerel şubeyi manuel olarak silmeli
Silmek istediğinizden eminseniz, çalıştırın
git dalı -D hata düzeltmesi
Şimdi silinen uzak dalları temizlemek için çalıştırın
git uzaktan erik kaynağı
|
1
2
Sonraki
Oldukça aktif soru. Bu soruyu cevaplamak için 10 itibar kazanın. İtibar koşulu, bu sorunun istenmeyen postalardan ve yanıtlanmayan etkinliklerden korunmasına yardımcı olur.
Aradığın cevap değil mi? Git version-control git-branch git-push git-remote etiketli diğer sorulara göz atın veya kendi sorunuzu sorun.